import java.sql.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        //全查询
//        m1();

        //条件查询
//        m2();

        //增加
//        m3();

        //删除
//        m4();

        //修改
        m5();


    }

    private static void m5() {
        //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要修改信息的序号:");
            String id = sc.next();
            System.out.println("请输入修改后的姓名:");
            String name = sc.next();
            System.out.println("请输入修改后的密码:");
            String pass = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接()
            String url = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            Connection connection = DriverManager.getConnection(url, "root", "z20050115");
//            if(connection != null) {
//                System.out.println("连接成功");
//            }
            //3.写sql
            String sql = "update user set name = ?,pass = ? where id = ?";

            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            //5.有参数设置参数
            preparedStatement.setObject(1,name);
            preparedStatement.setObject(2,pass);
            preparedStatement.setObject(3,id);

            //6.执行sql
            int result = preparedStatement.executeUpdate();

            //结果判断
            if(result > 0){
                System.out.println("修改成功");
            }

            //8.关闭资源
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

    private static void m1() {
        //1.加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接()
            String url = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            Connection connection = DriverManager.getConnection(url, "root", "z2050115");
//            if(connection != null) {
//                System.out.println("连接成功");
//            }
            //3.写sql
            String sql = "select * from user";

            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            //5.有参数设置参数

            //6.执行sql
            ResultSet resultSet = preparedStatement.executeQuery();

            //7.遍历结果集
            while (resultSet.next()) {
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String pass = resultSet.getString(3);

                System.out.println(id+"-----"+name+"-----"+pass);
            }

            //8.关闭资源
            resultSet.close();
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m2() {
        //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要查询的姓名:");
            String word = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接()
            String url = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            Connection connection = DriverManager.getConnection(url, "root", "z2050115");
//            if(connection != null) {
//                System.out.println("连接成功");
//            }
            //3.写sql
            String sql = "select * from user where name like ?";

            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            //5.有参数设置参数
            preparedStatement.setObject(1,"%" + word + "%");

            //6.执行sql
            ResultSet resultSet = preparedStatement.executeQuery();

            //7.遍历结果集
            while (resultSet.next()) {
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String pass = resultSet.getString(3);

                System.out.println(id+"-----"+name+"-----"+pass);
            }

            //8.关闭资源
            resultSet.close();
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    private static void m3() {
        //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要新增的姓名:");
            String name = sc.next();
            System.out.println("请输入你要新增的密码:");
            String pass = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接()
            String url = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            Connection connection = DriverManager.getConnection(url, "root", "z2050115");
//            if(connection != null) {
//                System.out.println("连接成功");
//            }
            //3.写sql
            String sql = "insert into user(name,pass) values (?,?)";

            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            //5.有参数设置参数
            preparedStatement.setObject(1,name);
            preparedStatement.setObject(2,pass);

            //6.执行sql
            int result = preparedStatement.executeUpdate();

            //结果判断
            if(result > 0){
                System.out.println("新增成功");
            }

            //8.关闭资源
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

    private static void m4() throws RuntimeException {  //1.加载驱动
        try {
            //Scanner
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要删除信息的序号:");
            String id = sc.next();

            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接()
            String url = "jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf-8";
            Connection connection = DriverManager.getConnection(url, "root", "z2050115");
//            if(connection != null) {
//                System.out.println("连接成功");
//            }
            //3.写sql
            String sql = "delete from user where id = ?";

            //4.预编译sql
            PreparedStatement preparedStatement = connection.prepareStatement(sql);

            //5.有参数设置参数
            preparedStatement.setObject(1,id);

            //6.执行sql
            int result = preparedStatement.executeUpdate();

            //结果判断
            if(result > 0){
                System.out.println("删除成功");
            }

            //8.关闭资源
            preparedStatement.close();
            connection.close();


        } catch (ClassNotFoundException | SQLException e) {
            throw new RuntimeException(e);
        }


    }
}